A computer system typically includes a number of integrated circuit devices, or computer chipsets, that may be operated in more than one configuration. The computer is designed to use the chipsets in only one particular configuration and thus the chipsets must be “initialized” or “set up” whenever a user turns the computer on or resets the computer. The computer chipsets also have some operating parameters which must be set before the first central processing unit (CPU) cycle issues, and thus these parameters cannot be set by normal CPU configuration cycles. Such a chip is usually initialized by providing certain electrical signals to the chip when the computer is turned on or reset. The circuitry used to generate these signals is frequently referred to as the “strapping device”. Jumpers and dual inline package (DIP) switches are two examples of strapping devices which set the strapping options for the computer. Several pins of the chip must thus be assigned to receive the configuration signals generated by the strapping devices as soon as power is provided.
However, the computer motherboard assembly employed by these strapping devices is costly and space consuming. Moreover, an integrated circuit chip cannot spare too many dedicated pins for receiving the configuration signals generated by the strapping devices. Accordingly, certain pins of the chip may be used to perform one function during the startup process, while serving another function during normal operation. In other words, these pins are multiplexed. Data pins of a chip are usually this type of multiplexed pin. For a computer system adopting double data rate (DDR) technology, there are some problems if the DDR data pins are connected to the strapping devices, since the DDR data pins must be kept at a stable voltage during bus idle. As well, data pins conforming to the Peripheral Component Interconnect (PCI) specification cannot be used to receive the strapping signals, since the PCI bus is a shared bus and there will be contention if more than one PCI device uses the same data pin to receive the strapping signal. Hence, the static nature of currently available strapping devices makes their use unappealing in such implementations.
For the reasons mentioned previously, a firmware configuration scheme is provided to initialize the operating parameters of a computer system, unencumbered by the limitations associated with the prior art.